package com.zzyl.common.ai;
import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.core.auth.Auth;
import com.baidubce.qianfan.model.chat.ChatResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class AIModelInvoker {

    @Autowired
    private BaiduAIProperties baiduAIProperties;

    /****
     * 远程调用
     */
    public String qianfanInvoker(String prompt){
        ChatResponse response = new Qianfan(Auth.TYPE_OAUTH,baiduAIProperties.getAccessKey(),baiduAIProperties.getSecretKey()).chatCompletion()
                .model(baiduAIProperties.getQianfanModel()) // 使用model指定预置模型
                // .endpoint("completions_pro") // 也可以使用endpoint指定任意模型 (二选一)
                .addMessage("user", prompt) // 添加用户消息 (此方法可以调用多次，以实现多轮对话的消息传递)
                .temperature(0.7) // 自定义超参数
                .maxOutputTokens(2000)
                .responseFormat("json_object")
                .execute(); // 发起请求
        return response.getResult();
    }
}
